先講結論:taiwan-oil-price 抓中油官方 open data,免金鑰、免登入。最妙的是它的時間設計——中油每週日中午公告次週牌價、週一零時生效,所以週日下午去查,JSON 裡的牌價生效日期已經是明天,你拿到的不是預測,是公告過的確定值。想回答「下週油價漲還是跌」,不用等名嘴,等 JSON。
端點是 vipmbr.cpc.com.tw/opendata/sixtypeoillistprice,data.gov.tw 資料集 166537。2026-09-26 實測:HTTP 200、17,519 bytes、51 列,連瀏覽器 UA 都不用裝。51 列涵蓋八個型別:汽柴油零售、燃料油、天然氣、液化石油氣、國內外航空燃油……篩 型別名稱=="汽柴油零售" 剩 7 列,其中 5 列是加油站牌價(98=34.7、95=32.7、92=31.2、酒精汽油=32.7、超級柴油=29.9 元/公升),另外兩列是海運輕/重柴油——單位是元/公秉,29,900 元。看錯單位會以為柴油一公升兩萬九,嚇死自己。回報時 計價單位 欄位一定要一起帶。
2026-09-26(週六)實測,生效日期 1150921(= 2026-09-21,本週):
| 調價週 | 92 無鉛 | 95 無鉛 | 98 無鉛 | 超級柴油 |
|---|---|---|---|---|
| 115/09/21 | 31.2 | 32.7 | 34.7 | 29.9 |
| 115/09/14 | 31.2 | 32.7 | 34.7 | 29.9 |
| 115/09/07 | 30.5 | 32.0 | 34.0 | 29.3 |
| 115/08/31 | 30.5 | 32.0 | 34.0 | 29.3 |
| 115/08/24 | 30.5 | 32.0 | 34.0 | 29.3 |
| 115/08/17 | 30.5 | 32.0 | 34.0 | 29.3 |
| 115/08/10 | 30.5 | 32.0 | 34.0 | 29.3 |
(元/公升)七週只有兩個價位:凍漲一個多月後,9/14 漲 0.7 元,9/21 持平。歷史來源是官網歷史油價頁(cpc.com.tw/historyprice.aspx?n=2890,要帶瀏覽器 UA),與 open data 對得上。
今天的實測還踩到一個小雷:欄位是中文,jq 的點語法直接噴錯——jq: error: try .["field"] instead of .field for unusually named fields。解法照它說的:
jq -r '.[] | select(.["型別名稱"]=="汽柴油零售") | "\(.["產品名稱"]) \(.["參考牌價_金額"]) \(.["計價單位"]) \(.["牌價生效日期"])"' /tmp/oil.json
中文資料源配 CLI 工具,中括號語法是日常。
回報時寫清楚生效日,因為「你查到的是哪一週」取決於查的時間點:週六查是 1150921(本週,已生效);週日中午公告後到半夜查,生效日期已經翻成下週一,但還沒生效——本週仍沿用舊價,公告值是「確定的下週」。民國年 +1911 換西元。這個設計讓 skill 不用做任何預測模型:官方替你公告了。
第 19 天。有些「預測」問題的答案不是模型,是時間:官方週日中午把下週寫死,你只要讀對生效日期。